widget: Unset self from accessible
authorBenjamin Otte <otte@redhat.com>
Sun, 18 Dec 2011 16:05:20 +0000 (17:05 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 19 Dec 2011 15:17:13 +0000 (16:17 +0100)
gtk/gtkwidget.c

index a89275f0825d4f9ab0ea7ce3a49bdb5b29996ccd..909b32a71edcec4c90746e14f7179ff8813b3ac0 100644 (file)
@@ -10101,11 +10101,14 @@ gtk_widget_real_destroy (GtkWidget *object)
   /* gtk_object_destroy() will already hold a refcount on object */
   GtkWidget *widget = GTK_WIDGET (object);
   GtkWidgetPrivate *priv = widget->priv;
-  GtkAccessible *accessible;
 
-  accessible = g_object_steal_qdata (G_OBJECT (widget), quark_accessible_object);
-  if (GTK_IS_ACCESSIBLE (accessible))
-    gtk_accessible_set_widget (accessible, NULL);
+  if (GTK_WIDGET_GET_CLASS (widget)->priv->accessible_type != GTK_TYPE_ACCESSIBLE)
+    {
+      GtkAccessible *accessible = g_object_steal_qdata (G_OBJECT (widget), quark_accessible_object);
+      
+      if (accessible)
+        gtk_accessible_set_widget (accessible, NULL);
+    }
 
   /* wipe accelerator closures (keep order) */
   g_object_set_qdata (G_OBJECT (widget), quark_accel_path, NULL);